# Оператор raise.
"""
Оператор raise в языке программирования Python используется для явного возбуждения исключений. 
Он позволяет вам создавать исключительные ситуации в своем коде и указывать, 
что произошло что-то непредвиденное или некорректное.

Оператор raise может быть использован вместе с встроенными исключениями или собственными классами исключений, 
определенными пользователем. Примеры использования оператора raise:
"""
# 1. Возбуждение встроенного исключения ValueError:
def divide(a, b):
    if b == 0:
        raise ValueError("Деление на ноль недопустимо")
    return a / b

try:
    result = divide(10, 0)
except ValueError as e:
    print(e) # Деление на ноль недопустимо
"""
В этом примере, если второй аргумент b равен нулю, будет возбуждено исключение 
ValueError с сообщением "Деление на ноль недопустимо". Затем мы его перехватываем 
в блоке try-except и выводим сообщение об ошибке.
"""

# 2. Возбуждение собственного класса исключений:
class MyCustomException(Exception):
    pass

def process_data(data):
    if not data:
        raise MyCustomException("Пустые данные обнаружены")
    # Другой код обработки данных

try:
    data = []
    process_data(data)
except MyCustomException as e:
    print(e) # Пустые данные обнаружены
"""
В этом примере мы создаем собственный класс исключений MyCustomException, 
который наследуется от базового класса Exception. Если data пустой, 
то возбуждается исключение MyCustomException с сообщением "Пустые данные обнаружены". 
Затем мы его перехватываем и выводим сообщение об ошибке.

Оператор raise позволяет вам контролировать поток выполнения программы 
при возникновении исключительных ситуаций и обеспечивает более ясную обратную 
связь для разработчика и пользователя.
"""